﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TISS_Add_in
{
    public partial class uc_StatusProcedimentos : UserControl
    {

        #region Properties

        private List<ct_itemSolicitacao> listaProcedimentos = new List<ct_itemSolicitacao>();
        public List<ct_itemSolicitacao> ListaProcedimentos
        {
            set { listaProcedimentos = value; }
        }

        private List<ct_itemSolicitacao> listaOPMs = new List<ct_itemSolicitacao>();
        public List<ct_itemSolicitacao> ListaOPMs
        {
            set { listaOPMs = value; }
        }

        private node_type tipoProcedimento;
        public node_type TipoProcedimento
        {
            get { return tipoProcedimento; }
            set { tipoProcedimento = value; }
        }

        #endregion

        public uc_StatusProcedimentos()
        {
            InitializeComponent();
        }

        public void carregaStatusProcedimentos()
        {
            lvwProcedimentos.Items.Clear();
            lvwProcedimentos.Groups.Clear();
            ListViewGroup grpProcedimentos = new ListViewGroup("Procedimentos");
            ListViewGroup grpOPM = new ListViewGroup("OPM");
            lvwProcedimentos.Groups.Add(grpProcedimentos);
            lvwProcedimentos.Groups.Add(grpOPM);
            
            foreach (ct_itemSolicitacao proc in listaProcedimentos)
            {
                List<string> item = new List<string>();
                item.Add(proc.identificacaoProcedimentos.codigo);
                item.Add(proc.identificacaoProcedimentos.descricao);
                item.Add(proc.quantidadeSolicitada.ToString());
                item.Add(proc.quantidadeAutorizada.ToString());
                item.Add(AddinUtils.DescricaoStatus(proc.statusSolicitacaoProcedimento));
                if (proc.glosas != null)
                    item.Add("X");

                ListViewItem lvwItem = new ListViewItem(item.ToArray(), grpProcedimentos);
                lvwProcedimentos.Items.Add(lvwItem);
            }

            foreach (ct_itemSolicitacao opm in listaOPMs)
            {
                List<string> item = new List<string>();
                item.Add(opm.identificacaoProcedimentos.codigo);
                item.Add(opm.identificacaoProcedimentos.descricao);
                item.Add(opm.quantidadeSolicitada.ToString());
                item.Add(opm.quantidadeAutorizada.ToString());
                item.Add(AddinUtils.DescricaoStatus(opm.statusSolicitacaoProcedimento));
                if (opm.glosas != null)
                    item.Add("X");

                ListViewItem lvwItem = new ListViewItem(item.ToArray(), grpOPM);
                lvwProcedimentos.Items.Add(lvwItem);
            }
        }

        private void uc_StatusProtocolo_Load(object sender, EventArgs e)
        {
            carregaStatusProcedimentos();
        }

        private void lvwProcedimentos_DoubleClick(object sender, EventArgs e)
        {
            if (lvwProcedimentos.SelectedItems.Count > 0)
            {
                if (lvwProcedimentos.Items[lvwProcedimentos.SelectedIndices[0]].SubItems[5].Text == "X")
                {
                    TISS_Add_in.uc_ListaGlosas ucGlosas = new uc_ListaGlosas();
                    List<ct_motivoGlosa> listaGlosas = new List<ct_motivoGlosa>();
                    foreach (ct_motivoGlosa glosa in listaProcedimentos[lvwProcedimentos.SelectedIndices[0]].glosas)
                    {
                        listaGlosas.Add(glosa);
                    }
                    ucGlosas.ListaGlosas = listaGlosas;
                    Globals.ThisAddIn.ListaGlosasCTP = Globals.ThisAddIn.CustomTaskPanes.Add(ucGlosas, "Glosas do Procedimento");
                    Globals.ThisAddIn.ListaGlosasCTP.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionFloating;
                    Globals.ThisAddIn.ListaGlosasCTP.Width = 315;
                    //Globals.ThisAddIn.GlosasCTP.Height = 325;
                    Globals.ThisAddIn.ListaGlosasCTP.Visible = true;
                    Globals.ThisAddIn.ListaGlosasCTP.Control.Focus();
                }
            }
        }

    }
}
